import java.util.ArrayList;
import java.util.List;

public class Solution1 {
    public static void main(String[] args) {
        List<Integer> A = new ArrayList<>();
        List<Integer> B = new ArrayList<>();
        List<Integer> C = new ArrayList<>();
        A.add(2);
        A.add(1);
        A.add(0);
        hanota(A, B, C);
        System.out.println(C);
    }
    public static void hanota(List<Integer> A, List<Integer> B, List<Integer> C) {
        dfs(A, B, C, A.size());
    }

    public static void dfs(List<Integer> A, List<Integer> B, List<Integer> C , int n) {
        if (n == 1) {
            C.add(A.remove(A.size() - 1));
            return;
        }
        dfs(A , C, B , n - 1);
        C.add(A.remove(A.size() - 1));
        dfs(B, A , C , n - 1);
    }
}
